return 0;
}
-static int iommu_enable_translation(struct iommu *iommu)
+static void iommu_enable_translation(struct iommu *iommu)
{
u32 sts;
unsigned long flags;
/* Disable PMRs when VT-d engine takes effect per spec definition */
disable_pmr(iommu);
spin_unlock_irqrestore(&iommu->register_lock, flags);
- return 0;
}
int iommu_disable_translation(struct iommu *iommu)
for_each_drhd_unit ( drhd )
{
iommu = drhd->iommu;
- if ( iommu_enable_translation(iommu) )
- return -EIO;
+ iommu_enable_translation(iommu);
}
}
}
static u32 iommu_state[MAX_IOMMUS][MAX_IOMMU_REGS];
-int iommu_suspend(void)
+void iommu_suspend(void)
{
struct acpi_drhd_unit *drhd;
struct iommu *iommu;
u32 i;
if ( !vtd_enabled )
- return 0;
+ return;
iommu_flush_all();
iommu_state[i][DMAR_FEUADDR_REG] =
(u32) dmar_readl(iommu->reg, DMAR_FEUADDR_REG);
}
-
- return 0;
}
-int iommu_resume(void)
+void iommu_resume(void)
{
struct acpi_drhd_unit *drhd;
struct iommu *iommu;
u32 i;
if ( !vtd_enabled )
- return 0;
+ return;
iommu_flush_all();
(u32) iommu_state[i][DMAR_FEADDR_REG]);
dmar_writel(iommu->reg, DMAR_FEUADDR_REG,
(u32) iommu_state[i][DMAR_FEUADDR_REG]);
-
- if ( iommu_enable_translation(iommu) )
- return -EIO;
+ iommu_enable_translation(iommu);
}
-
- return 0;
}
struct iommu_ops intel_iommu_ops = {
void iommu_update_ire_from_apic(unsigned int apic, unsigned int reg, unsigned int value);
void iommu_update_ire_from_msi(struct msi_desc *msi_desc, struct msi_msg *msg);
-int iommu_suspend(void);
-int iommu_resume(void);
+void iommu_suspend(void);
+void iommu_resume(void);
#endif /* _IOMMU_H_ */